package jnpf.service;

import jnpf.base.ActionResult;
import jnpf.entity.TemplateEntity;
import jnpf.entity.ThemeStructureVersionEntity;
import jnpf.model.entity.EntityUpTheme;
import jnpf.model.znm.theme.tree.TreeDragDTO;
import jnpf.model.znm.theme.tree.TreeVO;
import org.springframework.web.multipart.MultipartFile;


import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;
import java.util.List;
import java.util.Map;

public interface ZmnService {
    /**
     * 获取主题树
     * @return
     */
    List<TreeVO> getThemeTree();


    /**
     * 树拖拽变更
     * @param dragData
     * @return
     */
    ActionResult<String> updateTreePosition(@Valid List<TreeDragDTO> dragData);
//
//    /**
//     * 插入树变更日志
//     *
//     * @param dragData
//     * @return
//     */
//    boolean insertTreeUpdateLog(Themeupdatelog dragData);


    /**
     * 主体表格导入
     */
    ActionResult<String> importExcelTemplate(MultipartFile file, String nodeId);

    /**
     * 保存主题版本
     */
    ActionResult<String> saveThemeVersion(String themeId);

    /**
     * 查询主题版本记录
     */
    ActionResult<List<ThemeStructureVersionEntity>> getThemeVersion(List<String> themeIds);

    /**
     * 查询主题版本记录
     */
    ActionResult<List<ThemeStructureVersionEntity>> getThemeVersionInfo();

    /**
     * 模板创建实体
     */
    ActionResult<String> createEntity( String templateId, Integer count);

    /**
     * 实体挂载主题
     */
    ActionResult<String> entityUpTheme( EntityUpTheme entityUpTheme);

    /**
     * 获取标签列表
     */
    ActionResult<List<Map<String, String>>> getLabelListByType(String labelType);

    /**
     * 获取模板版本列表
     */
    ActionResult<List<TemplateEntity>> getTemplateVersionList(String templateId);

    ActionResult<String> setMainTemplate(@NotEmpty String templateId);
}
